home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / RIncludes / Menus.r < prev    next >
Encoding:
Text File  |  1998-02-12  |  4.5 KB  |  153 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Menus.r
  3.  
  4.      Contains:    Menu Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __MENUS_R__
  20. #define __MENUS_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26. #define kMenuStdMenuProc                 63
  27. #define kMenuStdMenuBarProc             63
  28.  
  29. #define kMenuNoModifiers                 0                    /*  Mask for no modifiers */
  30. #define kMenuShiftModifier                 0x01                /*  Mask for shift key modifier */
  31. #define kMenuOptionModifier             0x02                /*  Mask for option key modifier */
  32. #define kMenuControlModifier             0x04                /*  Mask for control key modifier */
  33. #define kMenuNoCommandModifier             0x08                /*  Mask for no command key modifier */
  34.  
  35. #define kMenuNoIcon                     0                    /*  No icon */
  36. #define kMenuIconType                     1                    /*  Type for ICON */
  37. #define kMenuShrinkIconType             2                    /*  Type for ICON plotted 16 x 16 */
  38. #define kMenuSmallIconType                 3                    /*  Type for SICN */
  39. #define kMenuColorIconType                 4                    /*  Type for cicn */
  40. #define kMenuIconSuiteType                 5                    /*  Type for Icon Suite */
  41. #define kMenuIconRefType                 6                    /*  Type for Icon Ref */
  42.  
  43. #define gestaltContextualMenuAttr         'cmnu'
  44. #define gestaltContextualMenuUnusedBit     0
  45. #define gestaltContextualMenuTrapAvailable  1
  46.  
  47. #define kCMHelpItemNoHelp                 0
  48. #define kCMHelpItemAppleGuide             1
  49. #define kCMHelpItemOtherHelp             2
  50.  
  51. #define kCMNothingSelected                 0
  52. #define kCMMenuItemSelected             1
  53. #define kCMShowHelpSelected             3
  54.  
  55.  
  56. /*----------------------------MENU • Menu-----------------------------------------------*/
  57. type 'MENU' {
  58.         integer;                                                /* Menu ID                */
  59.         fill word[2];
  60.         integer         textMenuProc = 0;                        /* ID of menu def proc    */
  61.         fill word;
  62.         unsigned hex bitstring[31]
  63.                         allEnabled = 0x7FFFFFFF;                /* Enable flags         */
  64.         boolean         disabled, enabled;                        /* Menu enable            */
  65.         pstring         apple = "\0x14";                        /* Menu Title            */
  66.         wide array {
  67.                 pstring;                                        /* Item title            */
  68.                 byte            noIcon;                         /* Icon number            */
  69.                 char            noKey = "\0x00",                /* Key equivalent or    */
  70.                                 hierarchicalMenu = "\0x1B";        /* hierarchical menu    */
  71.                 char            noMark = "\0x00",                /* Marking char or id    */
  72.                                 check = "\0x12";                /* of hierarchical menu    */
  73.                 fill bit;
  74.                 unsigned bitstring[7]
  75.                                 plain;                            /* Style                */
  76.         };
  77.         byte = 0;
  78. };
  79.  
  80. /*----------------------------MBAR • Menu Bar-------------------------------------------*/
  81. type 'MBAR' {
  82.         integer = $$CountOf(MenuArray);                         /* Number of menus        */
  83.         wide array MenuArray{
  84.                 integer;                                        /* Menu resource ID     */
  85.         };
  86. };
  87.  
  88. /*----------------------------mctb • Menu Color Lookup Table----------------------------*/
  89. type 'mctb' {
  90.         integer = $$CountOf(MCTBArray);                         /* Color table count    */
  91.         wide array MCTBArray {
  92.             integer                mctbLast = -99;                    /* Menu resource ID     */
  93.             integer;                                            /* Menu Item             */
  94.             wide array [4] {
  95.                     unsigned integer;                            /* RGB: red                */
  96.                     unsigned integer;                            /*        green            */
  97.                     unsigned integer;                            /*        blue            */
  98.             };
  99.             fill word;                                            /* Reserved word        */
  100.         };
  101. };
  102.  
  103.  
  104. /*-------------------------------xmnu • Extended menu resource---------------------------*/
  105. type 'xmnu'
  106. {
  107.     switch
  108.     {
  109.         case versionZero:
  110.             key integer = 0;    /* version */
  111.  
  112.             integer = $$Countof(ItemExtensions);
  113.             array ItemExtensions
  114.             {
  115.                 switch
  116.                 {
  117.                     case skipItem:
  118.                         key integer=0;
  119.                         
  120.                     case dataItem:
  121.                         key integer=1;
  122.                         unsigned longint;                        /* Command ID */
  123.                         unsigned hex byte;                        /* modifiers */
  124.                         fill byte;                                /* icon type placeholder */
  125.                         fill long;                                /* icon handle placeholder */
  126.                         unsigned longint sysScript=-1,            /* text encoding */
  127.                                          currScript=-2;            /*     (use currScript for default)*/
  128.                         unsigned longint;                        /* refCon */
  129.                         unsigned longint;                        /* refCon2 */
  130.                         unsigned integer noHierID=0;            /* hierarchical menu ID */
  131.                         unsigned integer sysFont=0;                /* font ID */
  132.                         integer naturalGlyph=0;                    /* keyboard glyph */
  133.                 };
  134.             };
  135.     };
  136. };
  137.  
  138. #if TARGET_OS_WIN32
  139.  
  140. /*----------------------------MENA • Menu Accessory Key---------------------------------*/
  141. type 'MENA' {
  142.         integer = $$CountOf(MenuArray);                         /* Number of keys        */
  143.         longint;                                                 /* flags                */
  144.         wide array MenuArray{
  145.                 char;                                            /* key                    */
  146.         };
  147. };
  148.  
  149. #endif
  150.  
  151. #endif /* __MENUS_R__ */
  152.  
  153.